
function bubelSort(arr) {
    const len = arr.length;
    for (let i = 0; i < len; i++) {
        for (let j = 0; j < len - i; i++) {
            if (arr[j] > arr[j+1]) {
                const temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}
// 找最小的索引 然后把对应的值放到数组的前面
function checkSort(arr) {
    const len = arr.length;
    let minIndex, current,
    for (let i = 0; i < len; i++) {
        minIndex = i;
        current = arr[i]
        for (let j = i-1; j < len; j++) {
           if ( arr[j] > current) {
            minIndex = j;
           }
        }
        const temp = arr[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = temp;
    }
}
// 和前面的有序数组的每一项进行比较， 然后插入。
// function insertCheck(arr) {
//     const len
// }
function radixSort(arr, maxDigit) {
    const counter = [];
    let mod = 10;
    let dev = 1;
    for (let i = 0; i < maxDigit; i++, dev *= 10, mod *= 10) {//根据位数来对数组中数据进行分组
        // 按照个位分组装到桶里， 第二轮 按照十位 第三轮按照百位
        for(let j = 0; j < arr.length; j++) {
            let bucket = parseInt((arr[j] % mod) / dev);
            if(counter[bucket]==null) {
                counter[bucket] = [];
            }
            counter[bucket].push(arr[j]);
        }
        // 把数据分组里取出来 
        for(let x = 0; x < counter.length; x++) {
           const bucket = counter[x];
           while(Array.isArray(bucket)) {
            arr.push(bucket.shift())
           }
        }
    }
    return arr2;
}
const arr2 = [0,50, 2, 31, 4, 48]
radixSort(arr2,2)
console.log(arr2)